Adjustment of advertising interval in communications between an implantable medical device and an external device

ABSTRACT

An advertising algorithm is disclosed which operates in an Implantable Medical Device (IMD) to adjust an interval at which the IMD will transmit advertising data packets to an external device able to connect with the IMD. When a communication session between the IMD and an external device is terminated, the advertising algorithm will issue advertising data packets at a higher rate for a set duration. This will allow the external device to connect more quickly with the IMD in a next communication session. After the set duration, when it may be assumed that the external device is less likely to connect with the IMD, the algorithm reduces that rate at which advertising data packets are issued, which saves power in the IMD.

CROSS REFERENCE TO RELATED APPLICATIONS

This is a non-provisional of U.S. Provisional Patent Application Ser.No. 63/085,569, filed Sep. 30, 2020, which is incorporated by reference,and to which priority is claimed.

FIELD OF THE INVENTION

This application deals with implantable medical device (IMDs) systemsand manners in which external devices can communicate with an IMD.

INTRODUCTION

Implantable neurostimulator devices are devices that generate anddeliver electrical stimuli to body nerves and tissues for the therapy ofvarious biological disorders, such as pacemakers to treat cardiacarrhythmia, defibrillators to treat cardiac fibrillation, cochlearstimulators to treat deafness, retinal stimulators to treat blindness,muscle stimulators to produce coordinated limb movement, spinal cordstimulators to treat chronic pain, cortical and deep brain stimulatorsto treat motor and psychological disorders, and other neural stimulatorsto treat urinary incontinence, sleep apnea, shoulder subluxation, etc.The description that follows will generally focus on the use of theinvention within a Deep Brain Stimulation (DBS) or Spinal CordStimulation (SCS) system, such as that disclosed in U.S. Pat. No.6,516,227 and U.S. Patent Application Publication 2016/0184591. However,the present invention may find applicability with any implantableneurostimulator device system, including peripheral nerve stimulationsystems.

A DBS or SCS system typically includes an Implantable Pulse Generator(IPG) 10 shown in FIG. 1 . The IPG 10 includes a biocompatible devicecase 12 that holds the circuitry and a battery 14 for providing powerfor the IPG to function. Battery 14 may comprise a rechargeable batteryor a primary cell battery which is not rechargeable. The IPG 10 iscoupled to tissue-stimulating electrodes 16 via one or more electrodeleads that form an electrode array. For example, one or morepercutaneous leads 18 can be used having electrodes 16 carried on aflexible body. In another example, a paddle lead 20 provides electrodes16 positioned on one of its generally flat surfaces. Lead wires withinthe leads are coupled to the electrodes 16 and to proximal contacts 22insertable into lead connectors 24 fixed in a header 26 on the IPG 10,which header can comprise an epoxy for example. Once inserted, theproximal contacts 22 connect to header contacts 28 within the leadconnectors 24, which are in turn coupled by feedthrough pins 30 througha case feedthrough 32 to stimulation circuitry 36 within the case 12.The number and type of leads, and the number of electrodes on suchleads, can vary depending on the application. The conductive case 12 canalso comprise an electrode.

In a SCS application, as is useful to alleviate chronic back pain forexample, the electrode lead(s) are typically implanted in the spinalcolumn proximate to the dura in a patient's spinal cord, preferablyspanning left and right of the patient's spinal column. The proximalcontacts 22 are tunneled through the patient's tissue to a distantlocation such as the buttocks where the IPG case 12 is implanted, atwhich point they are coupled to the lead connectors 24. In a DBSapplication, as is useful in the treatment of tremor in Parkinson'sdisease for example, the IPG 10 is typically implanted under thepatient's clavicle (collarbone). Percutaneous leads 18 are tunneledthrough and under the neck and the scalp where the electrodes 16 areimplanted through holes drilled in the skull and positioned for examplein the subthalamic nucleus (STN) and the pedunculopontine nucleus (PPN)in each brain hemisphere.

IPG 10 can also comprise functionally-similar devices that are not fullyimplantable in the patient, such as an External Trial Stimulator (ETS).An ETS has leads implantable in the patient but connected to a circuitryportion that is external to the patient. When an ETS is used,stimulation can be tried on a prospective implant patient without goingso far as to implant the IPG's case 12. ETS devices are explainedfurther in U.S. Published Patent Application 2020/0001091. For purposeof this disclosure, an IPG should be understood to include ETSs as well.

IPG 10 can include an antenna 34 a allowing it to communicatebi-directionally with a number of external devices discussedsubsequently. Antenna 34 a as shown comprises a conductive coil withinthe case 12, although the coil antenna 34 a can also appear in theheader 26. When antenna 34 a is configured as a coil, communication withexternal devices preferably occurs using near-field magnetic induction,using a communication scheme like Frequency Shift Keying (FSK) forexample. See, e.g., U.S. Patent Application Publication 2015/0080982(describing the use of FSK in magnetic-inductive implantable medicaldevice telemetry). IPG 10 may also include a Radio-Frequency (RF)antenna 34 b. In FIG. 1 , RF antenna 34 b is shown within the header 26,but it may also be within the case 12. RF antenna 34 b may comprise apatch, slot, or wire, and may operate as a monopole or dipole. RFantenna 34 b preferably communicates using far-field electromagneticwaves, and may operate in accordance with any number of known RFcommunication standards, such as Bluetooth, Bluetooth Low Energy (BLE),Zigbee, WiFi, MICS, and the like.

Stimulation in IPG 10 is typically provided by pulses, as described inthe above-referenced '091 Publication. Pulses can be formed bystimulation circuitry 36 in the IPG, again as described in the '091Publication. Stimulation circuitry 36 can comprise a part of, or cancommunicate with, the IPG's control circuitry 38. The control circuitry38 can comprise a microcontroller, microprocessor, Field ProgrammableGrid Array, Programmable Logic Device, Digital Signal Processor or likedevices. In one example, control circuitry 38 can comprise or include anMSP430 microcontroller device, manufactured by Texas Instruments, Inc.Control circuitry 38 may also be based on well-known ARM microcontrollertechnology. Control circuitry 38 may include a central processing unitcapable of executing instructions, with such instructions stored involatile or non-volatile memory within the control circuitry. Controlcircuitry 38 may also include, operate in conjunction with, or beembedded within, an Application Specific Integrated Circuit (ASIC), suchas described in U.S. Patent Application Publications 2008/0319497,2012/0095529, 2018/0071513, or 2018/0071520, which are incorporatedherein by reference. The control circuitry 38 may comprise an integratedcircuit with a monocrystalline substrate, or may comprise any number ofsuch integrated circuits. Control circuitry 38 may also be included aspart of a System-on-Chip (SoC) or a System-on-Module (SoM) which mayincorporate memory devices and other digital interfaces.

IPG 10 may also include a magnetic field sensor 40, such as a Halleffect sensor. Magnetic field sensor 40 can also comprise other devicesor circuits in the IPG, for example as taught in U.S. Pat. No.10,589,090 and U.S. Patent Application Publication 2007/0191914. Use ofthe magnetic field sensor 40 in an IPG 10 is explained further below.

FIG. 2 shows various external devices that can wirelessly communicatewith the IPG 10, including a patient hand-held remote controller (RC) 50and a clinician programmer (CP) 60. Both of devices 50 and 60 can beused to wirelessly transmit information, such as a stimulation program,to the IPG 10—that is, to program stimulation circuitry 36 to producestimulation (e.g., pulses) with a desired amplitude and timing. Bothdevices 50 and 60 may also be used to adjust one or more stimulationparameters of a stimulation program that the IPG 10 is currentlyexecuting, to update software in these devices, or to place the IPG intodifferent operational modes as discussed further below. Devices 50 and60 may also wirelessly receive information from the IPG 10, such asvarious status information, etc.

Clinician programmer (CP) 60 is described further in U.S. PatentApplication Publication 2015/0360038, and can comprise a computingdevice 62, such as a desktop, laptop, notebook computer, tablet, mobilesmart phone, or Personal Data Assistant (PDA)-type mobile computingdevice, etc. In FIG. 2 , computing device 62 is shown as a laptopcomputer that includes typical computer user interface means such as ascreen 64, a mouse, a keyboard, speakers, a stylus, a printer, etc., notall of which are shown for convenience. Also shown in FIG. 2 areaccessory devices for the CP 60 that are usually specific to itsoperation as a stimulation controller, such as a communication “wand” 66coupleable to suitable ports (e.g., USB ports 69) on the computingdevice 62.

The antenna used in the CP 60 to communicate with the IPG 10 can dependon the type of antennas included in the IPG. If the patient's IPG 10includes a coil antenna 34 a, wand 66 can likewise include a coilantenna 70 a to establish near-field magnetic-induction communicationsat small distances. In this instance, the wand 66 may be affixed inclose proximity to the patient, such as by placing the wand in a belt orholster wearable by the patient and proximate to the patient's IPG 10.If the IPG 10 includes an RF antenna 34 b, the wand 66, the computingdevice 62, or both, can likewise include an RF antenna 70 b to establishcommunication at larger distances.

To program stimulation programs or parameters for the IPG 10, or tootherwise control the IPG 10, the clinician interfaces with a clinicianprogrammer graphical user interface (GUI) 72 provided on the display 64of the computing device 72. As one skilled in the art understands, theGUI 72 can be rendered by execution of clinician programmer software 74stored in the computing device 72, which software may be stored in thedevice's non-volatile memory 76. Execution of the clinician programmersoftware 74 in the computing device 62 can be facilitated by controlcircuitry 78 such as one or more microprocessors, microcomputers, FPGAs,DSPs, other digital logic structures, etc., which are capable ofexecuting programs in a computing device, and which may comprise theirown memories. For example, control circuitry 78 can comprise an i5processor manufactured by Intel Corp, as described athttps://www.intel.com/content/www/us/en/products/processors/core/i5-processors.html.Such control circuitry 78, in addition to executing the clinicianprogrammer software 74 and rendering the GUI 72, can also enablecommunications via antennas 70 a or 70 b to communicate stimulationparameters chosen through the GUI 72 to the patient's IPG 10.

Remote controller (RC) 50 can be as described in U.S. Patent ApplicationPublication 2015/0080982 for example, and may comprise a controllerdedicated to work with the IPG 10. RC 50 may also comprise a generalpurpose mobile electronics device such as a mobile phone which has beenprogrammed with a Medical Device Application (MDA) allowing it to workas a wireless controller for the IPG 10, as described in U.S. PatentApplication Publication 2015/0231402. Like the CP 60, RC 50 includes agraphical user interface including a display 52 and means for enteringcommands or selections, such as buttons 56 or selectable graphicalelements rendered on the display. The RC 50's graphical user interfacealso enables a patient to adjust stimulation parameters, although it mayhave limited functionality when compared to the more-powerful CP 60described above. The RC 50 may also include a lock screen button 53 tounlock the display and otherwise power up the RC after it has gone intoa power-down mode, and a programming button 55 as explained furtherbelow.

The RC 50 can have one or more antennas capable of communicating withthe IPG 10. For example, the RC 50 can have a near-fieldmagnetic-induction coil antenna 54 a capable of wirelessly communicatingwith the coil antenna 34 a in the IPG 10. The RC 50 can also have afar-field RF antenna 54 b capable of wirelessly communicating with theRF antenna 34 b in the IPG 10. The RC 50 includes control circuitry 58which may be similar to the control circuitry in the CP 60, and whichincludes memory for storing software and the like. The RC 50 typicallyhas a battery (not shown) to provide operating power, and such batteryis usually rechargeable (similar to a cell phone).

The IPG 10, RC 50, and CP 60, as well as communicating with each other,can communicate with a network 80. Network 80 can comprise a WiFigateway and the Internet for example, and communication between thedevices can occur using the network 80 as an intermediary. A server 81can be connected to the network, which can for example be used to sendstimulation programs or other useful information (e.g., softwareupdates) to the various devices in the system.

FIG. 2 further shows a permanent bar magnet 90 in the communicationsystem for the IPG 10. Use and function of the bar magnet 90 isdescribed further below.

SUMMARY

An implantable medical device (IMD) is disclosed that is configured tocommunicate with an external device. The IMD may comprise: controlcircuitry programmed with an advertising algorithm, wherein theadvertising algorithm is configured to: establish a first communicationsession with the external device, wherein the first communicationssession enables the exchange of first data between the external deviceand the IMD; terminate the first communication session; and uponterminating the first communication session, cause advertisement data tobe repeatedly transmitted to the external device, wherein theadvertisement data is configured to allow the external device toestablish a second communication session with the IMD; increase a timeinterval between the transmitted advertisement data packets over time.

In one example, the control circuitry is programmed with an inactivityduration, wherein the advertising algorithm is configured to terminatethe first communication session after the inactivity duration isexceeded. In one example, the advertising algorithm is configured todetermine a first time when the first data is no longer being exchangedduring the first communication session, wherein the advertisingalgorithm is configured to terminate the first communication sessionwhen a duration after the first time exceeds the inactivity duration. Inone example, the advertising algorithm is configured to terminate thefirst communication session by transmitting a disconnection instructionto the external device. In one example, the advertising algorithm isconfigured to establish the first communication session by receiving aconnection request from the external device. In one example, theadvertising algorithm is further configured to establish the firstcommunication session by transmitting an acknowledgment to the externaldevice in response to the connection request. In one example, theadvertising algorithm is configured, upon terminating the firstcommunication session, to cause the advertisement data to be repeatedlytransmitted to the external device at a first time interval for a firstduration, and thereafter to cause the advertisement data to berepeatedly transmitted to the external device at a second time interval,wherein the first time interval is shorter than the second timeinterval. In one example, the control circuitry is configured to storeprogrammable values for the first duration, the first time interval, andthe second time interval. In one example, the advertising data comprisesan identification code for the IMD. In one example, the advertising datais transmitted using a Bluetooth or Bluetooth Low Energy communicationstandard. In one example, the advertising algorithm is furtherconfigured to establish the second communication session with theexternal device, wherein the second communications session enables theexchange of second data between the external device and the IMD. In oneexample, the control circuitry stores pairing information for theexternal device indicating that the IMD and external device are paired,wherein the advertising algorithm is configured to establish the firstcommunication session with the paired external device.

A method is disclosed for facilitating communications between animplantable medical device (IMD) and an external device. The method maycomprise: establishing a first communication session between theexternal device and the IMD, wherein the first communications sessionenables the exchange of first data between the external device and theIMD; terminating the first communication session; and upon terminatingthe first communication session, repeatedly transmitting from the IMDadvertisement data to the external device, wherein the advertisementdata is configured to allow the external device to establish a secondcommunication session with the IMD, wherein a time interval between thetransmitted advertisement data packets increases over time.

In one example, the first communication session is terminated after aninactivity duration stored in the IMD is exceeded. In one example, themethod further comprises determining a first time when the first data isno longer being exchanged during the first communication session,wherein the first communication session is terminated a duration afterthe first time exceeds the inactivity duration. In one example, thefirst communication session is terminated by transmitting adisconnection instruction from the IMD to the external device. In oneexample, the first communication session is established by receiving atthe IMD a connection request from the external device. In one example,the first communication session is established by transmitting anacknowledgment from the IMD to the external device in response to theconnection request. In one example, upon terminating the firstcommunication session, the advertisement data is repeatedly transmittedto the external device at a first time interval for a first duration,and thereafter the advertisement data is repeatedly transmitted to theexternal device at a second time interval, wherein the first timeinterval is shorter than the second time interval. In one example, themethod further comprises programming into the IMD values for the firstduration, the first time interval, and the second time interval. In oneexample, the advertising data comprises an identification code for theIMD. In one example, the advertising data is transmitted using aBluetooth or Bluetooth Low Energy communication standard. In oneexample, the method further comprises establishing the secondcommunication session between the external device and the IMD, whereinthe second communications session enables the exchange of second databetween the external device and the IMD. In one example, the methodfurther comprises pairing the external device with the IMD, wherein thefirst communication session is established between the paired externaldevice and the IMD.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows an Implantable Pulse Generator (IPG), in accordance withthe prior art.

FIG. 2 shows various external devices capable of communicating with andprogramming stimulation in an IPG, in accordance with the prior art.

FIG. 3 shows further details of an IPG containing an advertisementalgorithm, and an external device such as a remote controller (RC) or aclinician programmer (CP).

FIGS. 4A and 4B shows operation of the advertisement algorithm, andexplains the data that is communicated between the IPG and the externaldevice.

FIG. 5 is a flow chart explaining operation of the advertisementalgorithm.

DETAILED DESCRIPTION

As noted earlier, communications between an IPG 10 and an externaldevice such as the remote controller (RC) 50 or clinician programmer(CP) 60 can occur in accordance with a communication scheme such asBluetooth or Bluetooth Low Energy (BLE). BLE is favored as a standardfor such communications as it includes mechanisms that reduce powerconsumption in the devices. This is especially beneficial as concernsthe IPG 10. As noted earlier, the IPG 10 includes a battery 14 toprovide its power, and it is preferred that communications not undulydrain this battery. If communication schemes are used that are too powerintensive, the IPG 10 will need to be replaced early if the battery 14is a primary cell, or recharged too frequently if the battery isrechargeable.

When a communication standard such as BLE is used between the IPG 10 andan external device, the devices will operate in either a central role ora peripheral role, with the BLE chips in the devices being programmed tooperate in these roles. Typically, the IPG 10 acts in the peripheralrole, and so is able advertise its presence (provide advertising datapackets) to allow an external device to which it is paired to connectwith the IPG 10. The external device, acting in the central role, isable to scan for the IPG 10 and to receive its advertising data, whichthen allows the external device to connect to the IPG 10. After acentral role device and peripheral role device connect, a communicationsession is started, with these devices respectively operating as aserver (master) and client (slave) to transmit data between them asdictated by the BLE standard.

A goal of BLE communications, as already noted, is to reduce powerconsumption, and in this regard advertising data is broadcast onlyperiodically from the IPG 10. This means that the IPG 10 need onlyenable and power its telemetry circuitry (e.g., antenna 34 b and itsrelated modulation/demodulation circuitry) for limited times. Theconstant time interval at which advertising data packets is broadcast isprogrammable, and typically is programmed into the BLE chip that governsthe IPG's communications. This advertising interval can range from 20 msto as long as 10.24 seconds. In reality, advertising data is transmittedon up to three dedicated channels (frequencies) to reduce interference.Still further, to avoid consecutive collisions, a random delay of up to10 ms can be added to each advertising data packet. That being said, theadvertising interval is still said to be constant for all intents andpurposes.

The constant advertising interval can thus be adjusted (increased) toreduce power consumption in the IPG 10. However, in the inventors' view,this can come at a disadvantage. The goal of the IPG 10 in advertisingits presence is to enable a paired external device to connect it so thata communication session can be established between them, during whichdata can be exchanged. For example, during such a communication session,a user (patient or clinician) can use their RC 50 or CP 60 to transmitnew stimulation parameters for the IPG 10 to execute. Eventually, theestablished communication session will end. As explained further below,this can occur automatically when the IPG 10 and the external devicestop transmitting data. Specifically, the IPG can end the communicationsession after data transmission between the IPG 10 and external devicehave ceased for an inactivity duration. Because maintaining thecommunication session takes power in the IPG 10, this inactivity periodis preferably kept to a minimum (e.g., a few minutes) so as not to wastepower in the IPG 10. Once the communication session has ended, the IPG10 will again begin transmitting its advertisement data at its constantadvertising interval. That way, the external device can again connectwith the IPG if need be, and a second communication session can beestablished.

But this can be frustrating from the perspective of the user of theexternal device. Suppose for example that a clinician is using anexternal device such as CP 60 to try and find optional stimulationparameters for a patient. This may occur during a patient fittingsession, which may take tens of minutes, or even hours. At a first pointin time, the clinician may use the CP 60 to transmit stimulationparameters to the patient's IPG 10 during a first communication session.It may then be a while (several minutes) before the clinician uses theCP 60 again to transmit new stimulation parameters, at which time thefirst communication session may have ended and the IPG 10 and externaldevice are disconnected. The CP 60 can connect again to the IPG 10, butit will have to wait until it receives an advertising data packet to doso. If the constant advertising interval is set to a long value (to savepower in the IPG 10), it may be slow to establish this connection. Thisis particularly true if an advertising data packet is not reliablyreceived at the external device and thus the external device needs towait for receipt of a next advertising packet. As a result, theclinician may not be able to transmit the new stimulation parametersquickly to the IPG 10. Particularly if the fitting session with thepatient is long, with the external device and IPG 10 needing to connectand disconnect several times, delay in reestablishing communicationsessions with the IPG can negatively impact the timeliness of theprogramming session. This problem is exacerbated if the inactivityduration is set to a short value in the IPG 10 (again, to save power),as this will cause the IPG to disconnect from communication sessionsmore quickly.

To address this concern, the inventors disclose an advertisingalgorithm, which can operate in the IPG 10 to adjust the interval atwhich the IPG will transmit advertising data packets. When acommunication session between the IPG and an external device isterminated, the advertising algorithm will issue advertising datapackets at a higher rate for a set duration. This will allow theexternal device to connect more quickly with the IPG. After the setduration, when it may be assumed that the external device is less likelyto connect with the IPG, the algorithm reduces the rate at whichadvertising data packets are issued, which saves power in the IPG.

FIG. 3 shows circuitry that is implicated by the disclosed technique inthe IPG 10 and an external device 100. External device 100 can representeither the remote controller (RC) 50 of the clinician programmer (CP) 60described earlier, or another external device capable of communicatingwith the IPG 10. In this example, it is assumed that communicationsbetween the IPG 10 and the external device 100 are RF in nature, andpreferably occur using the BLE communication standard. As such, the IPG10 and external device 100 have RF antennas 34 b and 129, with RFantenna 129 comprising antenna 54 b in the RC 50 or antenna 70 b in theCP 60. Communications could also occur using magnetic induction (e.g.,FSK), in which case the antennas would comprise coil antennas, asdescribed previously.

The IPG 10's control circuitry 38 is programmed with mode logic 102which can set the IPG 10 into different modes, and can issue controlsignals consistent with those modes. For example, the IPG 10 can operatein a normal mode, which comprises the basic mode in which the IPG isactive and providing stimulation to the patient, and where telemetry isenabled with a paired external device. Mode logic 102 can also cause IPG10 to operate in a pairing mode to allow the IPG to be paired forcommunications with the external devices 100. Pairing can occur using abar magnet 90 (FIG. 2 ). Briefly, the magnetic field sensor 40 in theIPG 10 can be held proximate to the IPG's magnetic field sensor 40,which can inform the mode logic 102 in IPG 10 to enter the pairing mode.The details of how the IPG 10 and external device 100 can be paired, andthe information exchanged when doing so, is unnecessary to elaborateupon here. Use of the bar magnet 90 can also be used to reset the IPG10, which causes stimulation to cease.

Mode logic 102 can also cause the IPG 10 to operate in a peripheralrole, which as noted above enables the IPG 10 advertise its presence(provide advertising data packets) to external devices to which it ispaired. Mode logic 102 can further cause the IPG 10 to enter into acommunication session with an external device, and to enter either aslow or fast advertising mode, as explained further below. Control ofthe peripheral role, communication sessions, and operation in the slowor fast advertising modes can occur through use of an advertisementalgorithm 104 explained further below. Mode logic 102 can also cause theIPG to operate in other modes not of importance here.

As just noted, the IPG 10 can include an advertisement algorithm 104,which may be programmed into the IPG 10's control circuitry 38, and morespecifically may comprise part of the IPG's mode logic 102. Theadvertising algorithm 104 generally speaking dictates how the IPG 10will advertise its presence, and under what circumstances, as explainedfurther below. Aspects of the advertising algorithm 104 are preferablyprogrammable, and the algorithm 104 may include or communicate with anumber of programmable memories that hold parameters of interest.

For example, memory 106 can store a value for a first advertisinginterval (Adv Int 1) which dictates a first set time interval at whichthe IPG 10 will issue advertising data packets. In the example thatfollows, this first advertising interval is a longer interval thatoperates during the slow advertising mode. In one example, the firstadvertising interval may be approximately 2.9 seconds. Memory 108 canstore a value for a second advertising interval (Adv Int 2) whichdictates a second set time interval at which the IPG 10 will issueadvertising data packets. In the example that follows, this secondadvertising interval is a shorter interval that operates during the fastadvertising mode. In one example, the second advertising interval may beon the order of tenths of seconds, such as 0.3 seconds.

Memory 110 sets a value for an inactivity duration. The inactivityduration comprises a time period of inactivity during a communicationsession. When this time period is exceeded, the advertisement algorithm104 causes the IPG 10 to enter the fast advertising mode, as explainedfurther below. In one example, the inactivity duration may be on theorder of one minute or so. Memory 112 sets a value for the duration ofthe fast advertising mode, and after the expiration of this duration theadvertising algorithm 104 causes the IPG 10 to enter the slowadvertising mode. In one example, the inactivity duration may be on theorder of one minute or so. The fast advertising mode duration may be onthe order of a few minutes, such as 3 minutes. A timer 114 can be usedto control and monitoring the various timings that are used in theadvertising algorithm 104. The values in memories 106-112 can beprogrammed or adjusted using the GUI of the external device 100,although the interface for doing so isn't shown for simplicity.

The advertising algorithm 104 preferably works in conjunction with acommunications chip, such as BLE chip 115. BLE chip 115 as per itsnormal function can control many of the communication aspects in the IPG10, and is preferably programmable by the advertising algorithm 104. Forexample, when the advertising algorithm 104 decides to enter the slow orfast advertising modes, the algorithm 104 can transmit the relevantadvertising intervals (Adv Int 1 of Adv Int 2) to the BLE chip 115 forimplementation. In this regard, the BLE chip 115 can include memories tohold relevant values, and may include memories duplicative of thememories 106-112, although this detail isn't shown. Alternatively,memories 106-112 can appear exclusively within the BLE chip 115. Becausethe BLE chip 115 can be used to control the IPG's various modes, it canbe considered as part of the mode logic 102.

As also shown in FIG. 3 , the external device 100 also includes controlcircuitry 120, which may comprise control circuitries 58 or 78 in the RC50 or CP 60. Control circuitry 120 may also be programmed with modelogic 122 to cause the external device 100 to operate in a number ofdifferent modes. For example, the mode logic 122 can control operationin the central role, thus allowing communications to be established withthe IPG 10 when it operates in the peripheral role. In other examples,the external device can operate in a peripheral role at certain times(e.g., when it needs to communicate with another external device). Modelogic 122 can also cause the external device 100 to operate in a pairingmode to allow it to be paired to the IPG 10, although as noted abovesuch details are not relevant here. Lastly, the mode logic 122 can causethe external device to issue listening windows as is necessary for thedetection of advertising data packets that may be provided by the IPG10. As was the case in the IPG 10, the mode logic 122 can control orinclude a BLE chip 124.

The control circuitries 38 and 120 in the IPG 10 and external device 100can further include memories that are relevant to establishingcommunications with each other. Memories 116 and 126 store the devices'ID codes (IPG1, Ext1), and possibly other credentials or certificatesthat allow the device to communicate with other devices in the system.These ID codes can include or comprise serial numbers for the respectivedevices. Memories 118 and 128 store the ID codes (and other credentialsand certificates) for devices which with they have previously beenpaired for communications. For example, it is assumed in FIG. 3 that theexternal device 100 has paired with the IPG 10 and thus stores the IDcode for this device (IPG1) in memory 128. Consistent with this, IPG 10stores the ID code for the external device (Ext1) in its 118. Memories118 and 128 can store the ID codes for several devices.

FIGS. 4A and 4B illustrate operation of an example of the advertisingalgorithm 104, and of the data that is shared between the IPG 10 and theexternal device 100 when this algorithm in operating. FIG. 5 describesthe advertising algorithm 104 in a flow chart form, with steps performedin the IPG 10 in solid boxes, and other steps (e.g., performed by theexternal device) in dotted lined boxes.

Operation is explained chronologically starting with FIG. 4A, andbetween t0 and t1 it is assumed that the IPG 10 and external device 100are paired (FIG. 5, 200 ). This step isn't necessarily part of theadvertising algorithm 104, but is shown for completeness. As notedabove, the IPG 10 and external device 100 can be paired in differentmanners (such as through use of an external bar magnet 90). Pairing willcause each of the devices to store information about the other device(its ID code, etc.), in memories 118 and 128 (FIG. 3 ), whichfacilitates their ability to form a communication session, as explainedbelow.

At time t1, after the devices are paired, the IPG 10 preferably enters aslow advertisement mode, and begins transmitting advertising datapackets 130 in accordance with the slower advertising interval (Adv Int1; e.g., 2.9 s) stored in memory 106 (FIG. 3 ) (FIG. 5, 202 ). The slowadvertisement mode can be understood as the default advertisement modethat the advertising algorithm 104 will use when the devices have notestablished a communication session, or when it has been some time sincethe last communication session, as explained further below.

At time t2, it is assumed that the external device 100 has prepared“payload data” for the IPG 10 (204, FIG. 5 ). This payload data cancomprise different types of information, and may be sent by the externaldevice 100 automatically or under control of the user. For example, thepayload data can comprise new or adjusted stimulation parameters for theIPG 10 to execute. These stimulation parameters may have been enteredinto the external device 100's GUI by the user, or may be determinedautomatically by the external device 100. The payload data could alsocomprise information that doesn't involve the particulars of stimulationtherapy. For example, the payroll data could comprise software updatesfor the IPG 10, instructions to place the IPG into a particular mode,instructions to have the IPG 10 report certain data it might havestored, etc.

In any event, once such payload data is prepared for transmission to theIPG 10, the external device 100 will issue one or more listening windows132 (204, FIG. 5 ). The listening window 132 may issue automaticallyonce the payload data is prepared. Alternatively, because the listeningwindows may be scheduled at the external device 100, the listeningwindow 132 may comprise a next-scheduled listening window. During thelistening window 132, the external device 100 will power its telemetryantenna 129 and any related telemetry circuitry, and await the receiptof an advertising data packet 130 being transmitted by the IPG 10.Because the IPG is currently transmitting in the slow advertising mode,the listening window 132 is preferably maintained for a duration that atleast equals the first advertising interval (t1). If this interval isset to 2.9 seconds for example, the listening window 132 may need to beissued for at least this long to ensure that an advertising data packet130 will be received. If there is interference or other factors at playthat would affect the reliability of receipt of the advertising datapackets 130, the listening window 132 may issue for longer until apacket 130 is reliably received. Although not shown, listening windows132 may also issue with some periodicity (e.g., on a schedule as notedabove) to save power in the external device 100. If scheduled, listeningwindows 132 may issue at a higher frequency when payload data for theIPG is ready at the external device 100.

Upon receipt of an advertising data packet 130, which includes the IPG10's ID code (IPG1), the external device 100 can realize that thereceived packet is from a device with which it is paired (see memory128, FIG. 3 ). In response, the external device 100 can stop thelistening window 132, and transmit a connection request 134 to the IPG10 at time t3 (206, FIG. 5 ). Upon receipt of the connection request134, the IPG 10 can issue a connection request acknowledgment (ACK) 135very soon thereafter. This starts a communication session (Comm Session1) between the IPG 10 and the external device 100 shortly after time t3(208, FIG. 5 ).

During the communication session, the external device 100 and IPG 10 canexchange data 136 (208, FIG. 5 ). Data 136 would likely include thepayload data referred to earlier. The IPG 10 may also have data 136 totransmit to the external device during the communication session, eitherin response to the payload data, or independent of such data. Forexample, during a communication session, the IPG 10 may upload certaindata (e.g., status data) that it has saved to the external device 100.The exchange of data 136 is governed by connection packets which canissue relatively quickly, on the order of tens of milliseconds. Thetelemetry antennas and communication circuitry in both the IPG 10 andthe external device 100 can be constantly powered during thecommunication session in preparation to send or receive data packets136. The exchange of data 136 between the external device 100 and theIPG 10 can comprise data entirely transmitted from the external device100 to the IPG 10, data transmitted entirely from the IPG 10 to theexternal device 100, or data transmitted in both of these directions.

Timer 114 monitors data 136 exchange between the external device 100 andthe IPG 10, and in particular monitors a duration after data exchangehas ceased. This can occur in different manners, but in a simple examplethe timer 114 counts, but is reset when data 136 is transmitted orreceived during the communication session (210, FIG. 5 ). At time t4, itis assumed that no further data 136 is being exchanged between theexternal device 100 and the IPG 10, and thus the timer 114 beginscounting without being reset. The advertising algorithm 104 will monitorthe count of the timer 114, and when this count exceeds the programmedinactivity duration 110 (e.g., one minute) (212, FIG. 5 ), the algorithm140 will end the communication session by transmitting a disconnectioninstruction 138, as shown at time t5 (214, FIG. 5 ). As noted earlier,it can be beneficial to program the inactivity duration 110 to a lowervalue to reduce power consumption in the IPG 10, and so thatcommunication sessions are not needlessly extended when no data 136 isbeing transmitted.

Once the communication session has ended, the IPG 10 will once againstart transmitting advertising data packets 130, although under controlof the advertisement algorithm 140 it will so do at a faster rate inaccordance with its fast advertisement mode. Specifically, the IPG 10will begin transmitting advertising data packets 130 at the fasteradvertising interval (Adv Int 2, e.g., 0.3 s) stored in memory 108 (FIG.3 ) (FIG. 5, 216 ). Preferably, advertising data packets 130 aretransmitted during the fast advertisement mode for a limited fastadvertising mode duration stored in memory 112 (e.g., 3 minutes) beforeswitching to the slow advertisement mode, as explained further below.Timer 114 can be reset at the beginning of the fast advertising mode(FIG. 5, 216 ), with its count used to determine when the fastadvertisement mode duration 112 has been exceeded (FIG. 5, 218 ).

Although issuing fast advertising data packets will increase powerconsumption in the IPG 10, it can also assist the external device 100 tore-establish a connection to the IPG 10 faster. This can be particularlybeneficial when the external device 100 is used during a patient fittingsession, but where the clinician only occasionally uses the externaldevice 100 to transmit new payload data to the IPG 10. In this context,it is possible or likely that the clinician will want to send data tothe IPG for a short time after a previous communication session hasended (FIG. 5, 220 ), and thus will want to reestablish communicationsquickly so that new payload data can be transmitted to the IPG 10without undue delay. This is shown in FIG. 4A at time t6. Here, theexternal device 100 has determined that it has new payload data for theIPG 10 (FIG. 5, 220 ), and prepares this payload data and issues alistening window 132 (FIG. 5, 204 ). It is assumed in FIG. 4A that thislistening window 132 issues while the IPG 10 is still in the fastadvertising mode, because the fast advertising mode duration 112 has notyet been exceeded (FIG. 5, 218 ). Because the advertising data packets130 issue more quickly in the fast advertisement mode, a packet will bereceived more quickly during the listening window 132. This allows theexternal device 100 to more quickly issue a connection request 134 (attime t7) (FIG. 5, 206 ), and the IPG 10 to issue an acknowledgement 135,which then starts a second communication session (Comm Session 2) (FIG.5, 208 ). In short, the fast advertisement mode facilitates a quickerreconnection between the external device 100 and the IPG 10.

To save power in the IPG 10, it is preferred that the fast advertisementmode duration 112 is limited. Once this fast advertisement mode duration112 has expired (FIG. 5, 218 ), it is preferred that the IPG 10 enterthe slow advertisement mode (FIG. 5, 202 ). This example is shown inFIG. 4B. At time t8 (during Comm Session 2), data exchange between theexternal device 100 and IPG 10 has stopped, and at time t9 theinactivity duration 110 has been exceeded (FIG. 5, 212 ). As describedearlier, this causes the IPG to send a disconnection instruction 138,which ends the communication session (Comm Session 2) (FIG. 5, 214 ). Asjust discussed, ending the communication session causes the IPG 10 toenter the fast advertisement mode (FIG. 5, 216 ) for duration 112 (FIG.5, 218 ). In FIG. 4B, it is assumed that the fast advertising modeduration 112 has expired at time t10 before the external device 110 andIPG 10 can reconnect. Presumably, this is because the external device100 does not presently have payload data prepared for the IPG.

To save power, the advertising algorithm 104 then enters the slowadvertising mode at time t10 (FIG. 5, 202 ), which as noted earliersends advertising data packets 130 less frequently (e.g., Adv Int 1=2.9s). Thus, the external device 100 can still connect to the IPG 10,although this may occur more slowly. This is shown at time t11, when theexternal device 100 has once again prepared payload data for the IPG 10,and has issued a listening window 132 (FIG. 5, 204 ). Eventually anadvertising data packet 130 is received 130 (although perhaps moreslowly), and a connection request is sent at time t12 (FIG. 5, 206 ).The IPG 10 responds (ACK 135), and a new communication session (CommSession 3) is started (FIG. 5, 208 ). In short, even though the fastadvertisement mode is over, the external device can still connect withthe IPG 10 in the slow advertising mode, which operates as the defaultadvertising mode used to conserve power in the IPG 10.

Note that both the fast duration 112 and the inactivity period 110 canbe adjusted to appropriate values based on user experience with the goalof reestablishing faster communications—i.e., with the goal of cause theexternal device 100 to connect with the IPG 10 during the fastadvertising mode. For example, if the clinician realizes that he usesthe external device 100 about every seven minutes or so, the inactivityperiod 110 and the fast advertisement mode duration 112 can be adjustedto improve the likelihood that the clinician will be able tore-establish communications quickly during the fast advertisement mode.For example, an inactivity duration of two minutes could be set inmemory 110, while a fast advertisement mode duration of six minutescould be set in memory 112. Alternatively, an inactivity duration offive minutes could be set in memory 110, while a fast advertisement modeduration of three minutes could be set in memory 112. In either example,the sum of these durations (eight) is larger that the estimatedseven-minute interval at which the clinician tends to use the externaldevice 100, thus making it more likely that the external device 100 willquickly reconnect with the IPG 10 in the fast advertising mode.

In the example of the advertising algorithm 104 disclosed thus far, ithas been assumed that advertising data packets are sent in slow and fastmodes. However, this is not strictly necessary. For example, upondisconnecting from a communication session, the advertising algorithm104 in the IPG 10 could send advertising data packets progressively moreslowly. For example, the advertising data packets could be sent at afast rate (e.g., every 0.3 second) for a first duration, then at amedium rate (e.g., every 1 sec) for a second duration, and then at adefault slow rate (e.g., every 2.9 seconds). Still alternatively, theadvertising interval could be gradually increase after disconnectingfrom a communication session.

It has also been assumed and illustrated thus far that the IPG 10 usesits advertising algorithm 104 to communicate with a single externaldevice 100. For example, in FIG. 4A, the IPG 10 establishes a firstcommunication session with external device 100 at time t3; eventuallydisconnects with the external device 100 at time t5; sends advertisingdata pursuant to the algorithm; and then later reconnects with this sameexternal device 100 at time t7 for a second communication session.However, it is not strictly required that the IPG 10, through use of theadvertising algorithm 104, will connect with only a single externaldevice. For example, the IPG 10 can have a first communication sessionwith a first external device 100 (t3); eventually disconnects with thatexternal device 100 (t5); sends advertising data pursuant to thealgorithm; and then later connects with a second external device 100′(t7) to which the IPG 10 has previously been paired.

Although disclosed in the context of an implantable medical devicesystem that communicates in accordance with the Bluetooth or BluetoothLow Energy communication standards, it should be appreciated that theinvention is not limited to use of these communication standards.

Although particular embodiments of the present invention have been shownand described, it should be understood that the above discussion is notintended to limit the present invention to these embodiments. It will beobvious to those skilled in the art that various changes andmodifications may be made without departing from the spirit and scope ofthe present invention. Thus, the present invention is intended to coveralternatives, modifications, and equivalents that may fall within thespirit and scope of the present invention as defined by the claims.

What is claimed is:
 1. An implantable medical device (IMD) configured tocommunicate with an external device, comprising: control circuitryprogrammed with an advertising algorithm, wherein the advertisingalgorithm is configured to: establish a first communication session withthe external device, wherein the first communications session enablesthe exchange of first data between the external device and the IMD;terminate the first communication session; upon terminating the firstcommunication session, cause advertisement data to be repeatedlytransmitted to the external device, wherein the advertisement data isconfigured to allow the external device to establish a secondcommunication session with the IMD; and increase a time interval betweenthe transmitted advertisement data over time.
 2. The IMD of claim 1,wherein the control circuitry is programmed with an inactivity duration,wherein the advertising algorithm is configured to terminate the firstcommunication session after the inactivity duration is exceeded.
 3. TheIMD of claim 2, wherein the advertising algorithm is configured todetermine a first time when the first data is no longer being exchangedduring the first communication session, wherein the advertisingalgorithm is configured to terminate the first communication sessionwhen a duration after the first time exceeds the inactivity duration. 4.The IMD of claim 1, wherein the advertising algorithm is configured toterminate the first communication session by transmitting adisconnection instruction to the external device.
 5. The IMD of claim 1,wherein the advertising algorithm is configured to establish the firstcommunication session by receiving a connection request from theexternal device.
 6. The IMD of claim 5, wherein the advertisingalgorithm is further configured to establish the first communicationsession by transmitting an acknowledgment to the external device inresponse to the connection request.
 7. The IMD of claim 1, wherein theadvertising algorithm is configured, upon terminating the firstcommunication session, to cause the advertisement data to be repeatedlytransmitted to the external device at a first time interval for a firstduration, and thereafter to cause the advertisement data to berepeatedly transmitted to the external device at a second time interval,wherein the first time interval is shorter than the second timeinterval.
 8. The IMD of claim 7, wherein the control circuitry isconfigured to store programmable values for the first duration, thefirst time interval, and the second time interval.
 9. The IMD of claim1, wherein the advertising data is transmitted using a Bluetooth orBluetooth Low Energy communication standard.
 10. The IMD of claim 1,wherein the advertising algorithm is further configured to establish thesecond communication session with the external device, wherein thesecond communications session enables the exchange of second databetween the external device and the IMD.
 11. The IMD of claim 1, whereinthe control circuitry stores pairing information for the external deviceindicating that the IMD and external device are paired, wherein theadvertising algorithm is configured to establish the first communicationsession with the paired external device.
 12. A method for facilitatingcommunications between an implantable medical device (IMD) and anexternal device, comprising: establishing a first communication sessionbetween the external device and the IMD, wherein the firstcommunications session enables the exchange of first data between theexternal device and the IMD; terminating the first communicationsession; and upon terminating the first communication session,repeatedly transmitting from the IMD advertisement data to the externaldevice, wherein the advertisement data is configured to allow theexternal device to establish a second communication session with theIMD, wherein a time interval between the transmitted advertisement dataincreases over time.
 13. The method of claim 12, wherein the firstcommunication session is terminated after an inactivity duration storedin the IMD is exceeded, wherein the first communication session isterminated by transmitting a disconnection instruction from the IMD tothe external device.
 14. The method of claim 13, further comprisingdetermining a first time when the first data is no longer beingexchanged during the first communication session, wherein the firstcommunication session is terminated a duration after the first timeexceeds the inactivity duration.
 15. The method of claim 12, wherein thefirst communication session is established by receiving at the IMD aconnection request from the external device, and by transmitting anacknowledgment from the IMD to the external device in response to theconnection request.
 16. The method of claim 12, wherein, uponterminating the first communication session, the advertisement data isrepeatedly transmitted to the external device at a first time intervalfor a first duration, and thereafter the advertisement data isrepeatedly transmitted to the external device at a second time interval,wherein the first time interval is shorter than the second timeinterval.
 17. The method of claim 16, further comprising programminginto the IMD values for the first duration, the first time interval, andthe second time interval.
 18. The method of claim 12, wherein theadvertising data comprises an identification code for the IMD.
 19. Themethod of claim 12, wherein the advertising data is transmitted using aBluetooth or Bluetooth Low Energy communication standard.
 20. The methodof claim 12, further comprising establishing the second communicationsession between the external device and the IMD, wherein the secondcommunications session enables the exchange of second data between theexternal device and the IMD.